#include <vector>
#include <numeric>
#include <iostream>

int main() {
    // 定义一个Lambda表达式lazy_sum，用于实现惰性求和
    auto lazy_sum = [](auto container) {
        return [container]() {
            return std::accumulate(container.begin(), container.end(), 0);
        };
    };

    std::vector<int> numbers = {1, 2, 3, 4, 5};

    // 创建一个惰性求和函数
    auto sum = lazy_sum(numbers);

    // 在其他操作后，当需要结果时，才进行求和计算
    // ... 其他操作
    int result = sum(); // 执行求和计算
    std::cout << "Sum: " << result << std::endl;

    return 0;
}